package haierhome.krund.cn.daggertworetrofitrxjavamvp.retrofit.net;

import java.io.File;
import java.util.Map;

import haierhome.krund.cn.daggertworetrofitrxjavamvp.retrofit.bean.ListData;
import haierhome.krund.cn.daggertworetrofitrxjavamvp.retrofit.bean.NavigationData;
import haierhome.krund.cn.daggertworetrofitrxjavamvp.retrofit.bean.SuceesContent;
import haierhome.krund.cn.daggertworetrofitrxjavamvp.retrofit.bean.UserLogin;
import retrofit2.Call;
import retrofit2.http.Field;
import retrofit2.http.FieldMap;
import retrofit2.http.FormUrlEncoded;
import retrofit2.http.GET;
import retrofit2.http.POST;
import retrofit2.http.Path;
import retrofit2.http.Query;

/**
 * Created by Administrator on 2018/8/13.
 */

public interface NetInterface {

    //get无参数
    @GET("/navi/json")
    Call<NavigationData> getRequest();


    /**
     * @param path  这个参数就是替换路径的占位符
     * @param cid   这个参数是get请求的实际参数
     * @return 返回的就是实体类的对象
     */

    //get 带参数
    //http://www.wanandroid.com/project/list/1/json?cid=294    cid就是参数从1开始
    @GET("/project/list/1/{json}?")
    Call<ListData> getRequest(@Path("json") String path, @Query("cid") int cid);


    /**
     * @param uesrname     post方法提交参数用 Field
     * @param password     post方法提交参数用 Field
     * @return
     */
    //post第一种请求方式
    @FormUrlEncoded  //这种是表单请求 //Multipart 这种是支持文件的表单请求
    @POST("/user/login?")
    Call<UserLogin> postRequest1(@Field("username") String uesrname, @Field("password") String password);

    /**
     *
     * @param map
     * @return
     */
    // Map集合必须是加了泛型的，不然会直接崩溃
    @FormUrlEncoded
    @POST("/user/login?")
    Call<UserLogin> postRequestMap(@FieldMap Map<String, String> map);

    /**
     * 上传文件
     */
    @FormUrlEncoded
    @POST("/xiexiaobo/upload?")
    Call<SuceesContent> postFile(@Field("file") File file);


}
